"""
Задача 4.
Рост взрослого населения города X имеет нормальное распределение.
Причем, средний рост равен 174 см, а среднее квадратичное отклонение равно 8 см.
Какова вероятность того, что случайным образом выбранный взрослый человек имеет рост:
а). Больше 182 см
б). Больше 190 см
в). От 166 см до 190 см
г). От 166 см до 182 см
д). От 158 см до 190 см
е). Не выше 150 см или не ниже 190 см
ё). Не выше 150 см или не ниже 198 см
ж). Ниже 166 см.
"""
from scipy.stats import norm

# Параметры распределения
mu = 174  # средний рост
sigma = 8  # среднеквадратичное отклонение

# а) Вероятность того, что рост больше 182 см
P_gt_182 = 1 - norm.cdf(182, mu, sigma)

# б) Вероятность того, что рост больше 190 см
P_gt_190 = 1 - norm.cdf(190, mu, sigma)

# в) Вероятность того, что рост от 166 см до 190 см
P_between_166_and_190 = norm.cdf(190, mu, sigma) - norm.cdf(166, mu, sigma)

# г) Вероятность того, что рост от 166 см до 182 см
P_between_166_and_182 = norm.cdf(182, mu, sigma) - norm.cdf(166, mu, sigma)

# д) Вероятность того, что рост от 158 см до 190 см
P_between_158_and_190 = norm.cdf(190, mu, sigma) - norm.cdf(158, mu, sigma)

# е) Вероятность того, что рост не выше 150 см или не ниже 190 см
P_not_between_150_and_190 = norm.cdf(150, mu, sigma) + (1 - norm.cdf(190, mu, sigma))

# ё) Вероятность того, что рост не выше 150 см или не ниже 198 см
P_not_between_150_and_198 = norm.cdf(150, mu, sigma) + (1 - norm.cdf(198, mu, sigma))

# ж) Вероятность того, что рост ниже 166 см.
P_lt_166 = norm.cdf(166, mu, sigma)

# Вывод результатов
print(f"а) Вероятность того, что рост больше 182 см: {P_gt_182:.4f}")
print(f"б) Вероятность того, что рост больше 190 см: {P_gt_190:.4f}")
print(f"в) Вероятность того, что рост от 166 см до 190 см: {P_between_166_and_190:.4f}")
print(f"г) Вероятность того, что рост от 166 см до 182 см: {P_between_166_and_182:.4f}")
print(f"д) Вероятность того, что рост от 158 см до 190 см: {P_between_158_and_190:.4f}")
print(f"е) Вероятность того, что рост не выше 150 см или не ниже 190 см: {P_not_between_150_and_190:.4f}")
print(f"ё) Вероятность того, что рост не выше 150 см или не ниже 198 см: {P_not_between_150_and_198:.4f}")
print(f"ж) Вероятность того, что рост ниже 166 см: {P_lt_166:.4f}")
